#include<iostream>

using namespace std;
const int N=1e6+10;
bool st[N];
int prime[N],cnt,num[N];
int n;
void get_prime()
{
	for(int i=2;i<=n;i++)
	{
		if(!st[i]) prime[cnt++]=i;
		for(int j=0;1ll*prime[j]*i<=n;j++)
		{
			st[prime[j]*i]=true;
			if(i%prime[j]==0) break;
		}
	}
}
int main()
{
	cin>>n;

	get_prime();


	for(int j=0;j<cnt;j++)
	{
		for(long long i=prime[j];i<=n;i*=prime[j])
		{
			num[prime[j]]+=n/i;
		}
	}

	for(int i=2;i<=n;i++)
	{
		if(num[i])
			cout<<i<<" "<<num[i]<<endl;
	}
}